from django.shortcuts import render
from openai import OpenAI
from django.conf import settings
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json


# 首次导入
def chat_page(request):
    return render(request, "ai_assistant.html")

# 处理来自JS的请求,返回json字符串(包含AI回复)
@csrf_exempt
def chat(request):
    if request.method == "POST":
        #处理异常-检测JSON格式
        try:
            data = json.loads(request.body)  # 解析 JSON 数据
            user_message = data.get("message", "").strip()  # 获取用户输入

            if not user_message:
                return JsonResponse({"error": "用户消息不能为空"}, status=400)

            # 调用 AI 处理问题
            ai_response = get_ai_reply(user_message)
            return JsonResponse({"reply": ai_response})

        except json.JSONDecodeError:
            return JsonResponse({"error": "请求格式错误"}, status=400)
    return JsonResponse({"error": "仅支持 POST 请求"}, status=405)

# 获取AI回复操作的函数(位于chat函数内)
def get_ai_reply(user_message):
    client = OpenAI(api_key=settings.DEEPSEEK_API_KEY, base_url="https://api.deepseek.com")

    # 生成AI回复
    response = client.chat.completions.create(
        # 同样可以替换为 deepseek-reasoner 模型(deepseek v1)
        # 调用 deepseek V3m模型
        model="deepseek-chat",
        messages=[
            {"role":"system","content":"现在你是一个资历深厚的武汉导游，要让向你提问的旅客爱上武汉"},
            {"role": "user", "content": user_message},
        ]
    )

    return response.choices[0].message.content
